Die Standardfunktionalität des Programms LibreOffice Calc umfasst keine Funktionen zum Übersetzen von Texten in andere Sprachen. Allerdings kann jeder Benutzer eine solche Funktion selbstständig erstellen.
In diesem Artikel betrachten wir die benutzerdefinierte Funktion GoogleTranslate_YouLibreCalc(), mit der Sie Text direkt in einer Zelle in einem beliebigen Arbeitsblatt übersetzen können.
Die Funktion nutzt die Site, um den Text zu übersetzen "Google Übersetzer" und kann sowohl unabhängig als auch zusammen mit anderen Standardfunktionen in beliebigen Formeln verwendet werden.
Hinzufügen Funktion Google Translate , öffnen Sie das Menü Tools - Macros - Edit Macros... , wählen Module1 und kopieren Sie den folgenden Text in das Modul:
Option VBASupport 1
Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
' moonexcel.com.ua
Dim FCalc As Object
Dim WebsiteURL As String
Dim XMLHTTP As Object
Dim oHTML As Object
Dim HTMLDoc As HTMLDocument
Dim ObjClass As Object
FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
SrcLang = LCase(SrcLang)
TrgLang = LCase(TrgLang)
IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"
WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
' Wir führen den API-Aufruf an den Webserver mit der AJAX-Anfrage aus
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
' Wir erstellen ein HTML-Dokument mit dem Antworttext der AJAX-Anfrage
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
' Wir konvertieren HTML-Text mithilfe der Bibliothek von Webelementen Microsoft HTML Object in ein Objektmodell
Set HTMLDoc = oHTML
Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
If Not ObjClass Is Nothing Then
GoogleTranslate_YouLibreCalc = ObjClass.innerText
End If
' Wir befreien die Erinnerung
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
Als nächstes schließen Macro Editor und kehren Sie zum Arbeitsblatt zurück LibreOffice Calc , wählen Sie eine beliebige Zelle aus und nutzen Sie unsere neue Funktion GoogleTranslate_YouLibreCalc() .
Sie können auch die Funktion GOOGLETRANSLATE() verwenden, indem Sie die kostenlose Erweiterung installieren YouLibreCalc.oxt oder die Vollversion YLC_Utilities.oxt .
Danach steht diese Funktion in allen Dateien zur Verfügung, die in LibreOffice Calc geöffnet werden.